package 二叉搜索树;

import java.util.Comparator;

public class Main {
//    private static Object PersonComparator;

    private static class IntergerComparator implements Comparator<Integer> {
        @Override
        public int compare(Integer integer, Integer t1) {
            return integer - t1;
        }
    }

    public static void main(String[] args) {

        System.out.println("##########################");
        System.out.println("#########菜单现实##########");
        System.out.println("##########################");
        System.out.println("##########################");
        System.out.println("##########################");
        System.out.println("##########################");
        System.out.println("##########################");
        System.out.println("##########################");
        System.out.println("##########################");
        System.out.println("##########################");
        System.out.println("##########################");
        System.out.println("##########################");
        System.out.println("#########################");

        Integer data[] = new Integer[]{
                7, 4, 9, 2, 5, 8, 11, 3, 1, 10, 12
        };
        BinarySearchTree<Integer> bst = new BinarySearchTree<Integer>(new IntergerComparator());

        for (int i = 0; i < data.length; i++) {
            bst.add(data[i]);
        }
//        bst.showTree();
        System.out.println("先序遍历");
        bst.preorderTraversal();
        System.out.println("后序遍历");
        bst.postorderTraversal();
        System.out.println("中序遍历");
        bst.inorderTraversal();
        System.out.println("层序遍历");
        bst.evelOrderTranversal();
        System.out.println("打印树状图");
        System.out.println(bst.toString());
        System.out.println("树的高度是" + bst.height());
        System.out.println("树的高度是" + bst.height2());
        System.out.println("是不是完全二叉树" + bst.isComplete());

//        System.out.println("###########翻转");
//        System.out.println(bst.toString());
//        bst.invert();
//        System.out.println("删除12：");
//        bst.remove(12);
//        System.out.println(bst.toString());


        System.out.println("删除3：");
        bst.remove(3);
        System.out.println(bst.toString());
//        bst.remove(10);
//        bst.remove(1);
//        bst.remove(3);
//        bst.remove(4);
//        bst.remove(8);
//        System.out.println(bst.toString());

//        BinarySearchTree<Person> bst1 = new BinarySearchTree<Person>();
//        bst1.add(new Person(12));
//        bst1.add(new Person(21));
//
//
////        BinaryTree<Person> bst2 = new BinaryTree<Person>(new PersonComparator2());
//        BinarySearchTree<Person> bst2 = new BinarySearchTree<Person>();
//        bst2.add(new Person(12));
//        bst2.add(new Person(21));

    }

}
